#ifndef PLANE_H
#define PLANE_H

#include "Model.h"
#include "Structures.h"
#include "Functions.h"
#include <SFML/System.hpp>
#include <cmath>

class Plane {
public:
    Plane(Model *model, GLfloat x, GLfloat y, GLfloat z, GLuint shaderProg, sf::Clock *clock);
    void render(vec3 camPos);
    void update();
    void adjustSpeed(GLfloat speed);
    void adjustPitch(GLfloat angle);
    void adjustRoll(GLfloat angle);
    void adjustYaw(GLfloat angle);
    vec3 getPosition();
    void setPosition(vec3 pos);
    GLfloat getPitch();
    GLfloat getYaw();
private:
    static const GLfloat maxSpeed = 100;
    GLuint shaderProg;
    vec3 position;
    vec3 direction;
    Model *model;
    GLfloat speed;
    GLfloat yaw;
    GLfloat pitch;
    GLfloat roll;
    sf::Clock *clock;
};

#endif // PLANE_H
